<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: g2o::OptimizableGraph Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('structg2o_1_1_optimizable_graph.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="structg2o_1_1_optimizable_graph-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">g2o::OptimizableGraph Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This is an abstract class that represents one optimization problem.  
 <a href="structg2o_1_1_optimizable_graph.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="optimizable__graph_8h_source.html">optimizable_graph.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for g2o::OptimizableGraph:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="structg2o_1_1_optimizable_graph__inherit__graph.svg" width="166" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for g2o::OptimizableGraph:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="structg2o_1_1_optimizable_graph__coll__graph.svg" width="526" height="203"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">data packet for a vertex.  <a href="classg2o_1_1_optimizable_graph_1_1_data.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare.html">EdgeIDCompare</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">order edges based on the internal ID, which is assigned to the edge in <a class="el" href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070" title="adds a new edge. ">addEdge()</a>  <a href="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A general case <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html" title="A general case Vertex for optimization. ">Vertex</a> for optimization.  <a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare.html">VertexIDCompare</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">order vertices based on their ID  <a href="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a16d90305c171fe0582c6a8aef40ba89d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89d">ActionType</a> { <a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6">AT_PREITERATION</a>, 
<a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da6022cb4383dca15d503e600c463c5e5a">AT_POSTITERATION</a>, 
<a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651">AT_NUM_ELEMENTS</a>
 }</td></tr>
<tr class="separator:a16d90305c171fe0582c6a8aef40ba89d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b43e807ae6d61ef8749ca1ef7c25f62"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">OptimizableGraph::Edge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a></td></tr>
<tr class="memdesc:a2b43e807ae6d61ef8749ca1ef7c25f62"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector container for edges  <a href="#a2b43e807ae6d61ef8749ca1ef7c25f62">More...</a><br /></td></tr>
<tr class="separator:a2b43e807ae6d61ef8749ca1ef7c25f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3562ad6794c36ea832095131cfffaac"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">HyperGraphActionSet</a></td></tr>
<tr class="separator:aa3562ad6794c36ea832095131cfffaac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54f01b9b6071e65e6abeebe4afb29dec"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a></td></tr>
<tr class="memdesc:a54f01b9b6071e65e6abeebe4afb29dec"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector container for vertices  <a href="#a54f01b9b6071e65e6abeebe4afb29dec">More...</a><br /></td></tr>
<tr class="separator:a54f01b9b6071e65e6abeebe4afb29dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classg2o_1_1_hyper_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classg2o_1_1_hyper_graph')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></td></tr>
<tr class="memitem:a5e2970e236c0dcb4eff7c205d7b6b4ae inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a></td></tr>
<tr class="separator:a5e2970e236c0dcb4eff7c205d7b6b4ae inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b8fda20e1b03e92aeceeac6e8218b73 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::bitset&lt; <a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HyperGraph::HGET_NUM_ELEMS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a7b8fda20e1b03e92aeceeac6e8218b73">GraphElemBitset</a></td></tr>
<tr class="separator:a7b8fda20e1b03e92aeceeac6e8218b73 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af603119d5d3475aed6e34ee9d701b69e inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">HyperGraphElementType</a> { <br />
&#160;&#160;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69ea4a278c79154a0d4c381a7e265d7048f5">HGET_VERTEX</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69ea32ab1204ad3640d91c59ce6fffe2e580">HGET_EDGE</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eaec8dd0de424ff24a18d3ba5ed3864f79">HGET_PARAMETER</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafdb05add70f035dced2b173de8431408">HGET_CACHE</a>, 
<br />
&#160;&#160;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa">HGET_DATA</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HGET_NUM_ELEMS</a>
<br />
 }<tr class="memdesc:af603119d5d3475aed6e34ee9d701b69e"><td class="mdescLeft">&#160;</td><td class="mdescRight">enum of all the types we have in our graphs  <a href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:af603119d5d3475aed6e34ee9d701b69e inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9339534c99300a0ddac87ba976ef188c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">VertexContainer</a></td></tr>
<tr class="separator:a9339534c99300a0ddac87ba976ef188c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97307eac064ebf4b3e2cfbf0718035b5 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::tr1::unordered_map&lt; int, <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a></td></tr>
<tr class="separator:a97307eac064ebf4b3e2cfbf0718035b5 inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a703938cdb4bb636860eed55a2489d70c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">VertexSet</a></td></tr>
<tr class="separator:a703938cdb4bb636860eed55a2489d70c inherit pub_types_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6831ed69fce3dba691f53302a2813070"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070">addEdge</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">HyperGraph::Edge</a> *e)</td></tr>
<tr class="memdesc:a6831ed69fce3dba691f53302a2813070"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a new edge.  <a href="#a6831ed69fce3dba691f53302a2813070">More...</a><br /></td></tr>
<tr class="separator:a6831ed69fce3dba691f53302a2813070"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea1342d9ab0bf717710c8f78b74ff25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#acea1342d9ab0bf717710c8f78b74ff25">addGraph</a> (<a class="el" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a> *g)</td></tr>
<tr class="memdesc:acea1342d9ab0bf717710c8f78b74ff25"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds all edges and vertices of the graph <em>g</em> to this graph.  <a href="#acea1342d9ab0bf717710c8f78b74ff25">More...</a><br /></td></tr>
<tr class="separator:acea1342d9ab0bf717710c8f78b74ff25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4a7c038288097b0b1619c609cf40e90"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ad4a7c038288097b0b1619c609cf40e90">addParameter</a> (<a class="el" href="classg2o_1_1_parameter.html">Parameter</a> *p)</td></tr>
<tr class="separator:ad4a7c038288097b0b1619c609cf40e90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6db1ecbc582a7b79e1633eefc2109b26"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a6db1ecbc582a7b79e1633eefc2109b26">addPostIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a6db1ecbc582a7b79e1633eefc2109b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an action to be executed after each iteration  <a href="#a6db1ecbc582a7b79e1633eefc2109b26">More...</a><br /></td></tr>
<tr class="separator:a6db1ecbc582a7b79e1633eefc2109b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ab7899a0ff7bc29177e9447a10d508c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2ab7899a0ff7bc29177e9447a10d508c">addPreIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a2ab7899a0ff7bc29177e9447a10d508c"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an action to be executed before each iteration  <a href="#a2ab7899a0ff7bc29177e9447a10d508c">More...</a><br /></td></tr>
<tr class="separator:a2ab7899a0ff7bc29177e9447a10d508c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0b93774ce1dfa0dfd501c86ad4f773e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ae0b93774ce1dfa0dfd501c86ad4f773e">addVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *v, <a class="el" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a> *userData)</td></tr>
<tr class="memdesc:ae0b93774ce1dfa0dfd501c86ad4f773e"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a new vertex.  <a href="#ae0b93774ce1dfa0dfd501c86ad4f773e">More...</a><br /></td></tr>
<tr class="separator:ae0b93774ce1dfa0dfd501c86ad4f773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6f41f49fe6148fbe17133d10bf29b4c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">addVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *v)</td></tr>
<tr class="memdesc:ac6f41f49fe6148fbe17133d10bf29b4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a vertex to the graph.  <a href="#ac6f41f49fe6148fbe17133d10bf29b4c">More...</a><br /></td></tr>
<tr class="separator:ac6f41f49fe6148fbe17133d10bf29b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0d53383e22347aba1bf76c1ce492f51"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#af0d53383e22347aba1bf76c1ce492f51">chi2</a> () const</td></tr>
<tr class="memdesc:af0d53383e22347aba1bf76c1ce492f51"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the chi2 of the current configuration  <a href="#af0d53383e22347aba1bf76c1ce492f51">More...</a><br /></td></tr>
<tr class="separator:af0d53383e22347aba1bf76c1ce492f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15171b6d335115858e2e86dcf576ba78"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a15171b6d335115858e2e86dcf576ba78">clearParameters</a> ()</td></tr>
<tr class="memdesc:a15171b6d335115858e2e86dcf576ba78"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove the parameters of the graph  <a href="#a15171b6d335115858e2e86dcf576ba78">More...</a><br /></td></tr>
<tr class="separator:a15171b6d335115858e2e86dcf576ba78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a396e552ed234fe625e3b6785efa9c86d"><td class="memItemLeft" align="right" valign="top">std::set&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a396e552ed234fe625e3b6785efa9c86d">dimensions</a> () const</td></tr>
<tr class="memdesc:a396e552ed234fe625e3b6785efa9c86d"><td class="mdescLeft">&#160;</td><td class="mdescRight">iterates over all vertices and returns a set of all the vertex dimensions in the graph  <a href="#a396e552ed234fe625e3b6785efa9c86d">More...</a><br /></td></tr>
<tr class="separator:a396e552ed234fe625e3b6785efa9c86d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368b5f22dbc57abd2f651a20d039f61c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a368b5f22dbc57abd2f651a20d039f61c">discardTop</a> ()</td></tr>
<tr class="memdesc:a368b5f22dbc57abd2f651a20d039f61c"><td class="mdescLeft">&#160;</td><td class="mdescRight">discard the last backup of the estimate for all variables by removing it from the stack  <a href="#a368b5f22dbc57abd2f651a20d039f61c">More...</a><br /></td></tr>
<tr class="separator:a368b5f22dbc57abd2f651a20d039f61c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74cbd91a3e05c1f497b4675b0e70113a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a74cbd91a3e05c1f497b4675b0e70113a">discardTop</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset)</td></tr>
<tr class="memdesc:a74cbd91a3e05c1f497b4675b0e70113a"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore the latest stored element on the stack, remove it from the stack but do not restore the estimate  <a href="#a74cbd91a3e05c1f497b4675b0e70113a">More...</a><br /></td></tr>
<tr class="separator:a74cbd91a3e05c1f497b4675b0e70113a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b957f752c6afe7bc76baf00129f854e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a5b957f752c6afe7bc76baf00129f854e">isSolverSuitable</a> (const <a class="el" href="structg2o_1_1_optimization_algorithm_property.html">OptimizationAlgorithmProperty</a> &amp;solverProperty, const std::set&lt; int &gt; &amp;vertDims=std::set&lt; int &gt;()) const</td></tr>
<tr class="memdesc:a5b957f752c6afe7bc76baf00129f854e"><td class="mdescLeft">&#160;</td><td class="mdescRight">test whether a solver is suitable for optimizing this graph.  <a href="#a5b957f752c6afe7bc76baf00129f854e">More...</a><br /></td></tr>
<tr class="separator:a5b957f752c6afe7bc76baf00129f854e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa669dbd1d6e34e49fecda711ff1b78c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">jacobianWorkspace</a> ()</td></tr>
<tr class="memdesc:aa669dbd1d6e34e49fecda711ff1b78c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">the workspace for storing the Jacobians of the graph  <a href="#aa669dbd1d6e34e49fecda711ff1b78c6">More...</a><br /></td></tr>
<tr class="separator:aa669dbd1d6e34e49fecda711ff1b78c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21d73e7a39c731d19e6bb467cad59912"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a21d73e7a39c731d19e6bb467cad59912">jacobianWorkspace</a> () const</td></tr>
<tr class="separator:a21d73e7a39c731d19e6bb467cad59912"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34f4a170d58551ee9efac7a7a78fa833"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a34f4a170d58551ee9efac7a7a78fa833">load</a> (std::istream &amp;is, bool createEdges=true)</td></tr>
<tr class="memdesc:a34f4a170d58551ee9efac7a7a78fa833"><td class="mdescLeft">&#160;</td><td class="mdescRight">load the graph from a stream. Uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> singleton for creating the vertices and edges.  <a href="#a34f4a170d58551ee9efac7a7a78fa833">More...</a><br /></td></tr>
<tr class="separator:a34f4a170d58551ee9efac7a7a78fa833"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a305fe91c405fc960df051d9581e524bc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a305fe91c405fc960df051d9581e524bc">load</a> (const char *filename, bool createEdges=true)</td></tr>
<tr class="separator:a305fe91c405fc960df051d9581e524bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec95bac1366d39b40703f2aca375f505"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#aec95bac1366d39b40703f2aca375f505">maxDimension</a> () const</td></tr>
<tr class="memdesc:aec95bac1366d39b40703f2aca375f505"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the maximum dimension of all vertices in the graph  <a href="#aec95bac1366d39b40703f2aca375f505">More...</a><br /></td></tr>
<tr class="separator:aec95bac1366d39b40703f2aca375f505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc459c08fd5e743cf2072e740ffc5025"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#acc459c08fd5e743cf2072e740ffc5025">OptimizableGraph</a> ()</td></tr>
<tr class="memdesc:acc459c08fd5e743cf2072e740ffc5025"><td class="mdescLeft">&#160;</td><td class="mdescRight">empty constructor  <a href="#acc459c08fd5e743cf2072e740ffc5025">More...</a><br /></td></tr>
<tr class="separator:acc459c08fd5e743cf2072e740ffc5025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1b2e36c05680dd3e60ed6f90dddf5d8"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ac1b2e36c05680dd3e60ed6f90dddf5d8">optimize</a> (int iterations, bool online=false)</td></tr>
<tr class="memdesc:ac1b2e36c05680dd3e60ed6f90dddf5d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">carry out n iterations  <a href="#ac1b2e36c05680dd3e60ed6f90dddf5d8">More...</a><br /></td></tr>
<tr class="separator:ac1b2e36c05680dd3e60ed6f90dddf5d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9506880a9289353ddd2277fafb76ffd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_parameter.html">Parameter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ad9506880a9289353ddd2277fafb76ffd">parameter</a> (int id)</td></tr>
<tr class="separator:ad9506880a9289353ddd2277fafb76ffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8487f537b16ac7a2ee416ea294a1e22e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a8487f537b16ac7a2ee416ea294a1e22e">pop</a> ()</td></tr>
<tr class="memdesc:a8487f537b16ac7a2ee416ea294a1e22e"><td class="mdescLeft">&#160;</td><td class="mdescRight">pop (restore) the estimate of all variables from the stack  <a href="#a8487f537b16ac7a2ee416ea294a1e22e">More...</a><br /></td></tr>
<tr class="separator:a8487f537b16ac7a2ee416ea294a1e22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83425dbe755d22877ba692e93e04a6af"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a83425dbe755d22877ba692e93e04a6af">pop</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset)</td></tr>
<tr class="memdesc:a83425dbe755d22877ba692e93e04a6af"><td class="mdescLeft">&#160;</td><td class="mdescRight">pop (restore) the estimate a subset of the variables from the stack  <a href="#a83425dbe755d22877ba692e93e04a6af">More...</a><br /></td></tr>
<tr class="separator:a83425dbe755d22877ba692e93e04a6af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8d41dc0830f1ae07e9cb4a8341d3ffb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ac8d41dc0830f1ae07e9cb4a8341d3ffb">postIteration</a> (int)</td></tr>
<tr class="memdesc:ac8d41dc0830f1ae07e9cb4a8341d3ffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">called at the end of an iteration (argument is the number of the iteration)  <a href="#ac8d41dc0830f1ae07e9cb4a8341d3ffb">More...</a><br /></td></tr>
<tr class="separator:ac8d41dc0830f1ae07e9cb4a8341d3ffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad295e7f06651db627b8ebde3d8898bab"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ad295e7f06651db627b8ebde3d8898bab">preIteration</a> (int)</td></tr>
<tr class="memdesc:ad295e7f06651db627b8ebde3d8898bab"><td class="mdescLeft">&#160;</td><td class="mdescRight">called at the beginning of an iteration (argument is the number of the iteration)  <a href="#ad295e7f06651db627b8ebde3d8898bab">More...</a><br /></td></tr>
<tr class="separator:ad295e7f06651db627b8ebde3d8898bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db385b25818a5659d1fa8407cb0db45"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a3db385b25818a5659d1fa8407cb0db45">push</a> ()</td></tr>
<tr class="memdesc:a3db385b25818a5659d1fa8407cb0db45"><td class="mdescLeft">&#160;</td><td class="mdescRight">push the estimate of all variables onto a stack  <a href="#a3db385b25818a5659d1fa8407cb0db45">More...</a><br /></td></tr>
<tr class="separator:a3db385b25818a5659d1fa8407cb0db45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d65a6854936147a92f7ba664302993e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a1d65a6854936147a92f7ba664302993e">push</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset)</td></tr>
<tr class="memdesc:a1d65a6854936147a92f7ba664302993e"><td class="mdescLeft">&#160;</td><td class="mdescRight">push the estimate of a subset of the variables onto a stack  <a href="#a1d65a6854936147a92f7ba664302993e">More...</a><br /></td></tr>
<tr class="separator:a1d65a6854936147a92f7ba664302993e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a172f2f5c8ec5872d5bc34077c6391839"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a172f2f5c8ec5872d5bc34077c6391839">removePostIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a172f2f5c8ec5872d5bc34077c6391839"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove an action that should no longer be execured after each iteration  <a href="#a172f2f5c8ec5872d5bc34077c6391839">More...</a><br /></td></tr>
<tr class="separator:a172f2f5c8ec5872d5bc34077c6391839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27f5ee7016b20bc6def24a2726fc824b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a27f5ee7016b20bc6def24a2726fc824b">removePreIterationAction</a> (<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *action)</td></tr>
<tr class="memdesc:a27f5ee7016b20bc6def24a2726fc824b"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove an action that should no longer be execured before each iteration  <a href="#a27f5ee7016b20bc6def24a2726fc824b">More...</a><br /></td></tr>
<tr class="separator:a27f5ee7016b20bc6def24a2726fc824b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abee0b60ade0644904a489564def8ad1d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d">save</a> (std::ostream &amp;os, int level=0) const</td></tr>
<tr class="memdesc:abee0b60ade0644904a489564def8ad1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">save the graph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system.  <a href="#abee0b60ade0644904a489564def8ad1d">More...</a><br /></td></tr>
<tr class="separator:abee0b60ade0644904a489564def8ad1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29c40a9cb3bf3660e59d55cfad264c71"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a29c40a9cb3bf3660e59d55cfad264c71">save</a> (const char *filename, int level=0) const</td></tr>
<tr class="memdesc:a29c40a9cb3bf3660e59d55cfad264c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">function provided for convenience, see <a class="el" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d" title="save the graph to a stream. Again uses the Factory system. ">save()</a> above  <a href="#a29c40a9cb3bf3660e59d55cfad264c71">More...</a><br /></td></tr>
<tr class="separator:a29c40a9cb3bf3660e59d55cfad264c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3852abe611f2fd90a0a05979987615a2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a3852abe611f2fd90a0a05979987615a2">saveEdge</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a> *e) const</td></tr>
<tr class="separator:a3852abe611f2fd90a0a05979987615a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcf211f9c7bf3ee9dab65b130807402c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#adcf211f9c7bf3ee9dab65b130807402c">saveSubset</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset, int level=0)</td></tr>
<tr class="memdesc:adcf211f9c7bf3ee9dab65b130807402c"><td class="mdescLeft">&#160;</td><td class="mdescRight">save a subgraph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system.  <a href="#adcf211f9c7bf3ee9dab65b130807402c">More...</a><br /></td></tr>
<tr class="separator:adcf211f9c7bf3ee9dab65b130807402c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a08383ab953d435eaaca6231b64c3b6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a2a08383ab953d435eaaca6231b64c3b6">saveSubset</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;eset)</td></tr>
<tr class="memdesc:a2a08383ab953d435eaaca6231b64c3b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">save a subgraph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system.  <a href="#a2a08383ab953d435eaaca6231b64c3b6">More...</a><br /></td></tr>
<tr class="separator:a2a08383ab953d435eaaca6231b64c3b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a221656c91e253b4246553a33e33c3e6b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a221656c91e253b4246553a33e33c3e6b">saveVertex</a> (std::ostream &amp;os, <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> *v) const</td></tr>
<tr class="separator:a221656c91e253b4246553a33e33c3e6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07514f6186d19b6d893a771c0bb6abf9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a07514f6186d19b6d893a771c0bb6abf9">setFixed</a> (<a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;vset, bool fixed)</td></tr>
<tr class="memdesc:a07514f6186d19b6d893a771c0bb6abf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">fixes/releases a set of vertices  <a href="#a07514f6186d19b6d893a771c0bb6abf9">More...</a><br /></td></tr>
<tr class="separator:a07514f6186d19b6d893a771c0bb6abf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa77a4624619237563fe94cfd7b76fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#afaa77a4624619237563fe94cfd7b76fd">setRenamedTypesFromString</a> (const std::string &amp;types)</td></tr>
<tr class="memdesc:afaa77a4624619237563fe94cfd7b76fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the renamed types lookup from a string, format is for example: VERTEX_CAM=VERTEX_SE3:EXPMAP,EDGE_PROJECT_P2MC=EDGE_PROJECT_XYZ:EXPMAP This will change the occurance of VERTEX_CAM in the file to VERTEX_SE3:EXPMAP  <a href="#afaa77a4624619237563fe94cfd7b76fd">More...</a><br /></td></tr>
<tr class="separator:afaa77a4624619237563fe94cfd7b76fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23dbb64bd31deb3952d4149518e663ce"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a23dbb64bd31deb3952d4149518e663ce">verifyInformationMatrices</a> (bool verbose=false) const</td></tr>
<tr class="memdesc:a23dbb64bd31deb3952d4149518e663ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">verify that all the information of the edges are semi positive definite, i.e., all Eigenvalues are &gt;= 0.  <a href="#a23dbb64bd31deb3952d4149518e663ce">More...</a><br /></td></tr>
<tr class="separator:a23dbb64bd31deb3952d4149518e663ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19e014e8ec2e9a6e894da8c3a8f8e50d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">vertex</a> (int id)</td></tr>
<tr class="memdesc:a19e014e8ec2e9a6e894da8c3a8f8e50d"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the vertex number <em>id</em> appropriately casted  <a href="#a19e014e8ec2e9a6e894da8c3a8f8e50d">More...</a><br /></td></tr>
<tr class="separator:a19e014e8ec2e9a6e894da8c3a8f8e50d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e55fa99a49824af2711c0fcaf02ac1a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a0e55fa99a49824af2711c0fcaf02ac1a">vertex</a> (int id) const</td></tr>
<tr class="memdesc:a0e55fa99a49824af2711c0fcaf02ac1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the vertex number <em>id</em> appropriately casted  <a href="#a0e55fa99a49824af2711c0fcaf02ac1a">More...</a><br /></td></tr>
<tr class="separator:a0e55fa99a49824af2711c0fcaf02ac1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98f4399dfc23cac840a64ae2d0d3898f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a98f4399dfc23cac840a64ae2d0d3898f">~OptimizableGraph</a> ()</td></tr>
<tr class="separator:a98f4399dfc23cac840a64ae2d0d3898f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_hyper_graph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_hyper_graph')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></td></tr>
<tr class="memitem:a74f0d7392e67762a85799db72a58a94c inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a74f0d7392e67762a85799db72a58a94c">changeId</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *v, int newId)</td></tr>
<tr class="memdesc:a74f0d7392e67762a85799db72a58a94c inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">changes the id of a vertex already in the graph, and updates the bookkeeping @ returns false if the vertex is not in the graph;  <a href="classg2o_1_1_hyper_graph.html#a74f0d7392e67762a85799db72a58a94c">More...</a><br /></td></tr>
<tr class="separator:a74f0d7392e67762a85799db72a58a94c inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b629dff2928dbd704ca81f24858e72f inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a6b629dff2928dbd704ca81f24858e72f">clear</a> ()</td></tr>
<tr class="memdesc:a6b629dff2928dbd704ca81f24858e72f inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">clears the graph and empties all structures.  <a href="classg2o_1_1_hyper_graph.html#a6b629dff2928dbd704ca81f24858e72f">More...</a><br /></td></tr>
<tr class="separator:a6b629dff2928dbd704ca81f24858e72f inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4edfd2ef4bf235cf78031c505cfd2fcc inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a4edfd2ef4bf235cf78031c505cfd2fcc">edges</a> () const</td></tr>
<tr class="separator:a4edfd2ef4bf235cf78031c505cfd2fcc inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9f023fe2fb491ef9af873b9e683006 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a2f9f023fe2fb491ef9af873b9e683006">edges</a> ()</td></tr>
<tr class="separator:a2f9f023fe2fb491ef9af873b9e683006 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a833632b111cfc7cf08b842ae3cb43d41 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a833632b111cfc7cf08b842ae3cb43d41">HyperGraph</a> ()</td></tr>
<tr class="memdesc:a833632b111cfc7cf08b842ae3cb43d41 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructs an empty hyper graph  <a href="classg2o_1_1_hyper_graph.html#a833632b111cfc7cf08b842ae3cb43d41">More...</a><br /></td></tr>
<tr class="separator:a833632b111cfc7cf08b842ae3cb43d41 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33e5a60705ce673d647aa1613da9d99b inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a33e5a60705ce673d647aa1613da9d99b">removeEdge</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> *e)</td></tr>
<tr class="memdesc:a33e5a60705ce673d647aa1613da9d99b inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">removes a vertex from the graph. Returns true on success (edge was present)  <a href="classg2o_1_1_hyper_graph.html#a33e5a60705ce673d647aa1613da9d99b">More...</a><br /></td></tr>
<tr class="separator:a33e5a60705ce673d647aa1613da9d99b inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97ab8302aa027d513253387bba9e0dd5 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a97ab8302aa027d513253387bba9e0dd5">removeVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *v)</td></tr>
<tr class="memdesc:a97ab8302aa027d513253387bba9e0dd5 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">removes a vertex from the graph. Returns true on success (vertex was present)  <a href="classg2o_1_1_hyper_graph.html#a97ab8302aa027d513253387bba9e0dd5">More...</a><br /></td></tr>
<tr class="separator:a97ab8302aa027d513253387bba9e0dd5 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab07fe8bd9982a66ba34e83dff8317ea2 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">vertex</a> (int id)</td></tr>
<tr class="memdesc:ab07fe8bd9982a66ba34e83dff8317ea2 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present  <a href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">More...</a><br /></td></tr>
<tr class="separator:ab07fe8bd9982a66ba34e83dff8317ea2 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac117806d17a7e7ad7f8db42f2864cac9 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ac117806d17a7e7ad7f8db42f2864cac9">vertex</a> (int id) const</td></tr>
<tr class="memdesc:ac117806d17a7e7ad7f8db42f2864cac9 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present  <a href="classg2o_1_1_hyper_graph.html#ac117806d17a7e7ad7f8db42f2864cac9">More...</a><br /></td></tr>
<tr class="separator:ac117806d17a7e7ad7f8db42f2864cac9 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95fcf7cd9d89562b2c26d99ede3548ed inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a95fcf7cd9d89562b2c26d99ede3548ed">vertices</a> () const</td></tr>
<tr class="separator:a95fcf7cd9d89562b2c26d99ede3548ed inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a650107c875ef6f43d438d7d3e2ddf797 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a650107c875ef6f43d438d7d3e2ddf797">vertices</a> ()</td></tr>
<tr class="separator:a650107c875ef6f43d438d7d3e2ddf797 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef6e1d65e0f9171a518bce3fc559693 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a0ef6e1d65e0f9171a518bce3fc559693">~HyperGraph</a> ()</td></tr>
<tr class="memdesc:a0ef6e1d65e0f9171a518bce3fc559693 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="mdescLeft">&#160;</td><td class="mdescRight">destroys the hyper-graph and all the vertices of the graph  <a href="classg2o_1_1_hyper_graph.html#a0ef6e1d65e0f9171a518bce3fc559693">More...</a><br /></td></tr>
<tr class="separator:a0ef6e1d65e0f9171a518bce3fc559693 inherit pub_methods_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ab4ee0fc3ecd31852276ded40b62e9c76"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#ab4ee0fc3ecd31852276ded40b62e9c76">initMultiThreading</a> ()</td></tr>
<tr class="memdesc:ab4ee0fc3ecd31852276ded40b62e9c76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eigen starting from version 3.1 requires that we call an initialize function, if we perform calls to Eigen from several threads.  <a href="#ab4ee0fc3ecd31852276ded40b62e9c76">More...</a><br /></td></tr>
<tr class="separator:ab4ee0fc3ecd31852276ded40b62e9c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a260451b25094e5e929cc2841e31242f4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a260451b25094e5e929cc2841e31242f4">_edge_has_id</a></td></tr>
<tr class="separator:a260451b25094e5e929cc2841e31242f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e6a371ad7709692e52886ecf3e7250c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">HyperGraphActionSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a5e6a371ad7709692e52886ecf3e7250c">_graphActions</a></td></tr>
<tr class="separator:a5e6a371ad7709692e52886ecf3e7250c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a161c01a29d09cca22e223ab2048eaba8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">_jacobianWorkspace</a></td></tr>
<tr class="separator:a161c01a29d09cca22e223ab2048eaba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93a7f05b31bca9ccaa214499f042739a"><td class="memItemLeft" align="right" valign="top">long long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a93a7f05b31bca9ccaa214499f042739a">_nextEdgeId</a></td></tr>
<tr class="separator:a93a7f05b31bca9ccaa214499f042739a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a7974befcd934f28a36de3999423d21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_parameter_container.html">ParameterContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a></td></tr>
<tr class="separator:a3a7974befcd934f28a36de3999423d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a726ab6d0b04b12f835b690d54e061731"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_optimizable_graph.html#a726ab6d0b04b12f835b690d54e061731">_renamedTypesLookup</a></td></tr>
<tr class="separator:a726ab6d0b04b12f835b690d54e061731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_hyper_graph"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_hyper_graph')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></td></tr>
<tr class="memitem:afe4ae6e9ef05c8bded2b1b30e1886b36 inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#afe4ae6e9ef05c8bded2b1b30e1886b36">_edges</a></td></tr>
<tr class="separator:afe4ae6e9ef05c8bded2b1b30e1886b36 inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83132c77c8d0896581d168cbc72f673a inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a83132c77c8d0896581d168cbc72f673a">_vertices</a></td></tr>
<tr class="separator:a83132c77c8d0896581d168cbc72f673a inherit pro_attribs_classg2o_1_1_hyper_graph"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This is an abstract class that represents one optimization problem. </p>
<p>It specializes the general graph to contain special vertices and edges. The vertices represent parameters that can be optimized, while the edges represent constraints. This class also provides basic functionalities to handle the backup/restore of portions of the vertices. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a2b43e807ae6d61ef8749ca1ef7c25f62"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">OptimizableGraph::Edge</a>*&gt; <a class="el" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">g2o::OptimizableGraph::EdgeContainer</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>vector container for edges </p>

</div>
</div>
<a id="aa3562ad6794c36ea832095131cfffaac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::set&lt;<a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a>*&gt; <a class="el" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">g2o::OptimizableGraph::HyperGraphActionSet</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a54f01b9b6071e65e6abeebe4afb29dec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a>*&gt; <a class="el" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">g2o::OptimizableGraph::VertexContainer</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>vector container for vertices </p>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a16d90305c171fe0582c6a8aef40ba89d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89d">g2o::OptimizableGraph::ActionType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6"></a>AT_PREITERATION&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a16d90305c171fe0582c6a8aef40ba89da6022cb4383dca15d503e600c463c5e5a"></a>AT_POSTITERATION&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651"></a>AT_NUM_ELEMENTS&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acc459c08fd5e743cf2072e740ffc5025"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">g2o::OptimizableGraph::OptimizableGraph </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>empty constructor </p>

</div>
</div>
<a id="a98f4399dfc23cac840a64ae2d0d3898f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::OptimizableGraph::~OptimizableGraph </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6831ed69fce3dba691f53302a2813070"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::addEdge </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">HyperGraph::Edge</a> *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>adds a new edge. </p>
<p>The edge should point to the vertices that it is connecting (setFrom/setTo). </p><dl class="section return"><dt>Returns</dt><dd>false if the insertion does not work (incompatible types of the vertices/missing vertex). true otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classg2o_1_1_hyper_graph.html#a0f1d35009a2879b238c8148c33485c89">g2o::HyperGraph</a>.</p>

</div>
</div>
<a id="acea1342d9ab0bf717710c8f78b74ff25"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::addGraph </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a> *&#160;</td>
          <td class="paramname"><em>g</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>adds all edges and vertices of the graph <em>g</em> to this graph. </p>

</div>
</div>
<a id="ad4a7c038288097b0b1619c609cf40e90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::addParameter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_parameter.html">Parameter</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a6db1ecbc582a7b79e1633eefc2109b26"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::addPostIterationAction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *&#160;</td>
          <td class="paramname"><em>action</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>add an action to be executed after each iteration </p>

</div>
</div>
<a id="a2ab7899a0ff7bc29177e9447a10d508c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::addPreIterationAction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *&#160;</td>
          <td class="paramname"><em>action</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>add an action to be executed before each iteration </p>

</div>
</div>
<a id="ae0b93774ce1dfa0dfd501c86ad4f773e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::addVertex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a> *&#160;</td>
          <td class="paramname"><em>userData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>adds a new vertex. </p>
<p>The new vertex is then "taken". </p><dl class="section return"><dt>Returns</dt><dd>false if a vertex with the same id as v is already in the graph, true otherwise. </dd></dl>

</div>
</div>
<a id="ac6f41f49fe6148fbe17133d10bf29b4c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool g2o::OptimizableGraph::addVertex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>adds a vertex to the graph. </p>
<p>The id of the vertex should be set before invoking this function. the function fails if another vertex with the same id is already in the graph. returns true, on success, or false on failure. </p>

<p>Reimplemented from <a class="el" href="classg2o_1_1_hyper_graph.html#a7ef87ba3479827b24c6fc29c5fc3aa21">g2o::HyperGraph</a>.</p>

</div>
</div>
<a id="af0d53383e22347aba1bf76c1ce492f51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizableGraph::chi2 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>returns the chi2 of the current configuration </p>

</div>
</div>
<a id="a15171b6d335115858e2e86dcf576ba78"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::clearParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>remove the parameters of the graph </p>

</div>
</div>
<a id="a396e552ed234fe625e3b6785efa9c86d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::set&lt; int &gt; g2o::OptimizableGraph::dimensions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>iterates over all vertices and returns a set of all the vertex dimensions in the graph </p>

</div>
</div>
<a id="a368b5f22dbc57abd2f651a20d039f61c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::discardTop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>discard the last backup of the estimate for all variables by removing it from the stack </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#a20ed9e9f1201bfb874456a8d30f169fb">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="a74cbd91a3e05c1f497b4675b0e70113a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::discardTop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>ignore the latest stored element on the stack, remove it from the stack but do not restore the estimate </p>

</div>
</div>
<a id="ab4ee0fc3ecd31852276ded40b62e9c76"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::initMultiThreading </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Eigen starting from version 3.1 requires that we call an initialize function, if we perform calls to Eigen from several threads. </p>
<p>Currently, this function calls Eigen::initParallel if <a class="el" href="namespaceg2o.html">g2o</a> is compiled with OpenMP support and Eigen's version is at least 3.1 </p>

</div>
</div>
<a id="a5b957f752c6afe7bc76baf00129f854e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::isSolverSuitable </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structg2o_1_1_optimization_algorithm_property.html">OptimizationAlgorithmProperty</a> &amp;&#160;</td>
          <td class="paramname"><em>solverProperty</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::set&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>vertDims</em> = <code>std::set&lt;int&gt;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>test whether a solver is suitable for optimizing this graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">solverProperty</td><td>the solver property to evaluate. </td></tr>
    <tr><td class="paramname">vertDims</td><td>should equal to the set returned by <a class="el" href="structg2o_1_1_optimizable_graph.html#a396e552ed234fe625e3b6785efa9c86d" title="iterates over all vertices and returns a set of all the vertex dimensions in the graph ...">dimensions()</a> to avoid re-evaluating. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa669dbd1d6e34e49fecda711ff1b78c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&amp; g2o::OptimizableGraph::jacobianWorkspace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the workspace for storing the Jacobians of the graph </p>

</div>
</div>
<a id="a21d73e7a39c731d19e6bb467cad59912"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&amp; g2o::OptimizableGraph::jacobianWorkspace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a34f4a170d58551ee9efac7a7a78fa833"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool g2o::OptimizableGraph::load </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>createEdges</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>load the graph from a stream. Uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> singleton for creating the vertices and edges. </p>

</div>
</div>
<a id="a305fe91c405fc960df051d9581e524bc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::load </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>createEdges</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aec95bac1366d39b40703f2aca375f505"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizableGraph::maxDimension </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>return the maximum dimension of all vertices in the graph </p>

</div>
</div>
<a id="ac1b2e36c05680dd3e60ed6f90dddf5d8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizableGraph::optimize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>online</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>carry out n iterations </p>
<dl class="section return"><dt>Returns</dt><dd>the number of performed iterations </dd></dl>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#a098257ee6f13dbb79be07075244d9930">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="ad9506880a9289353ddd2277fafb76ffd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_parameter.html">Parameter</a>* g2o::OptimizableGraph::parameter </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8487f537b16ac7a2ee416ea294a1e22e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::pop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pop (restore) the estimate of all variables from the stack </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#ad2f7f62ebe17b40e050f0525db64355b">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="a83425dbe755d22877ba692e93e04a6af"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::pop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pop (restore) the estimate a subset of the variables from the stack </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#aa6688f8636bf89ef919d72947692d59c">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="ac8d41dc0830f1ae07e9cb4a8341d3ffb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::postIteration </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>called at the end of an iteration (argument is the number of the iteration) </p>

</div>
</div>
<a id="ad295e7f06651db627b8ebde3d8898bab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::preIteration </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>called at the beginning of an iteration (argument is the number of the iteration) </p>

</div>
</div>
<a id="a3db385b25818a5659d1fa8407cb0db45"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::push </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>push the estimate of all variables onto a stack </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#a4c121d69052291775860d06507aba698">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="a1d65a6854936147a92f7ba664302993e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::push </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>push the estimate of a subset of the variables onto a stack </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#ac9a5fd64764e61d99e8a90734118a8bf">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="a172f2f5c8ec5872d5bc34077c6391839"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::removePostIterationAction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *&#160;</td>
          <td class="paramname"><em>action</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>remove an action that should no longer be execured after each iteration </p>

</div>
</div>
<a id="a27f5ee7016b20bc6def24a2726fc824b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::removePreIterationAction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a> *&#160;</td>
          <td class="paramname"><em>action</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>remove an action that should no longer be execured before each iteration </p>

</div>
</div>
<a id="abee0b60ade0644904a489564def8ad1d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool g2o::OptimizableGraph::save </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>save the graph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system. </p>

</div>
</div>
<a id="a29c40a9cb3bf3660e59d55cfad264c71"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::save </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>function provided for convenience, see <a class="el" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d" title="save the graph to a stream. Again uses the Factory system. ">save()</a> above </p>

</div>
</div>
<a id="a3852abe611f2fd90a0a05979987615a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::saveEdge </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_edge.html">OptimizableGraph::Edge</a> *&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="adcf211f9c7bf3ee9dab65b130807402c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::saveSubset </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>save a subgraph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system. </p>

</div>
</div>
<a id="a2a08383ab953d435eaaca6231b64c3b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::saveSubset </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>eset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>save a subgraph to a stream. Again uses the <a class="el" href="classg2o_1_1_factory.html" title="create vertices and edges based on TAGs in, for example, a file ">Factory</a> system. </p>

</div>
</div>
<a id="a221656c91e253b4246553a33e33c3e6b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::saveVertex </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a07514f6186d19b6d893a771c0bb6abf9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::setFixed </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>vset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fixed</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>fixes/releases a set of vertices </p>

</div>
</div>
<a id="afaa77a4624619237563fe94cfd7b76fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizableGraph::setRenamedTypesFromString </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>types</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>set the renamed types lookup from a string, format is for example: VERTEX_CAM=VERTEX_SE3:EXPMAP,EDGE_PROJECT_P2MC=EDGE_PROJECT_XYZ:EXPMAP This will change the occurance of VERTEX_CAM in the file to VERTEX_SE3:EXPMAP </p>

</div>
</div>
<a id="a23dbb64bd31deb3952d4149518e663ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::verifyInformationMatrices </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>verbose</em> = <code>false</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>verify that all the information of the edges are semi positive definite, i.e., all Eigenvalues are &gt;= 0. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">verbose</td><td>output edges with not PSD information matrix on cerr </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if all edges have PSD information matrix </dd></dl>

</div>
</div>
<a id="a19e014e8ec2e9a6e894da8c3a8f8e50d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* g2o::OptimizableGraph::vertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>returns the vertex number <em>id</em> appropriately casted </p>

</div>
</div>
<a id="a0e55fa99a49824af2711c0fcaf02ac1a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* g2o::OptimizableGraph::vertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>returns the vertex number <em>id</em> appropriately casted </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a260451b25094e5e929cc2841e31242f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::OptimizableGraph::_edge_has_id</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5e6a371ad7709692e52886ecf3e7250c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">HyperGraphActionSet</a>&gt; g2o::OptimizableGraph::_graphActions</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a161c01a29d09cca22e223ab2048eaba8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a> g2o::OptimizableGraph::_jacobianWorkspace</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a93a7f05b31bca9ccaa214499f042739a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long long g2o::OptimizableGraph::_nextEdgeId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3a7974befcd934f28a36de3999423d21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_parameter_container.html">ParameterContainer</a> g2o::OptimizableGraph::_parameters</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a726ab6d0b04b12f835b690d54e061731"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;std::string, std::string&gt; g2o::OptimizableGraph::_renamedTypesLookup</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this struct was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="optimizable__graph_8h_source.html">optimizable_graph.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="optimizable__graph_8cpp.html">optimizable_graph.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceg2o.html">g2o</a></li><li class="navelem"><a class="el" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
